package com.topNews.base.util;

import java.math.BigDecimal;
import java.util.Date;

import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;

public class Convert {

	public static Long toLong(String value) {
		return NumberUtils.isDigits(value) ? new Long(value) : null;
	}

	public static BigDecimal toBigDecimal(String value) {
		return NumberUtils.isNumber(value) ? new BigDecimal(value) : null;
	}

	public static Integer toInteger(String value) {
		return NumberUtils.isDigits(value) ? new Integer(value) : null;
	}

	public static String toString(Object value) {
		if (value instanceof Date) {
			return toDateString((Date) value);
		} else {
			return ObjectUtils.toString(value);
		}
	}
	
	public static String toDateString(Date value) {
		try {
			return DateFormatUtils.ISO_DATE_FORMAT.format(value);
		} catch (Exception e) {
			return null;
		}
	}
	
	public static String toDateTimeString(Date value) {
		try {
			return DateFormatUtils.ISO_DATETIME_FORMAT.format(value);
		} catch (Exception e) {
			return null;
		}
	}

	public static Date toDate(String value) {
		try {
			return DateUtils.parseDate(value, new String[] { "yyyy-MM-dd" });
		} catch (Exception e) {
			return null;
		}
	}

	public static Date toDateTime(String value) {
		try {
			return DateUtils.parseDate(value, new String[] { "yyyy-MM-dd hh:mm:ss" });
		} catch (Exception e) {
			return null;
		}
	}
}
